import router from './router'
import store from './store'
import NProgress from 'nprogress' // 进度条
import 'nprogress/nprogress.css' // 进度条样式
import { getToken } from '@/utils/auth' // 获取Token
// import {parseTreeDataFunMenu} from '@/utils'
import getPageTitle from '@/utils/get-page-title' // 获取页面标题

NProgress.configure({ showSpinner: false })
// 白名单
const whiteList = ['/login','/register','/forgetface','/loading']

// 全局路由钩子
router.beforeEach(async(to, from, next) => {
  // 取消跳转之前请求的接口请求
  // 开始进度条
  NProgress.start()
  // 设置页面标题
  // document.title = getPageTitle(to.meta.title)
  // 判断当前是否有Token
  const hasToken = sessionStorage.getItem('token')
  debugger
  if (hasToken) {
    if (to.path === '/login') {
      // 如果已有token 即使是登录页也跳转首页
      next({ path: '/' })
      NProgress.done()
    } else {
     
      // 获取用户信息
      const hasGetUserInfo = sessionStorage.getItem('authority')
      debugger
      if (hasGetUserInfo) {
  
        next()
      } else {
        // 获取用户信息报错就清除Token退回登录页
         store.dispatch('user/logout')
        next(`/login?redirect=${to.path}`)
        NProgress.done()
      }
    }
  } else {
    // 无token情况
    if (whiteList.indexOf(to.path) !== -1) {
      // 如果在白名单 继续执行
      next()
    } else {
      // 不在白名单中则跳转登录
      next(`/login?redirect=${to.path}`)
      NProgress.done()
    }
  }
})
router.afterEach(() => {
  // 加载结束
  NProgress.done()
})
